package com.woniuxy.portal.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniuxy.portal.common.Result;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.Arrays;

// 这里写@Controller，因为有些方法用于页面跳转
@Controller
@RequestMapping("/index")
public class IndexController {
    /**
     * 首页点击类别，跳转到 booklist.html页面
     * 请求流程：
     * 1、index.html  --> /index/showBookList?typeId=1
     * 2、控制器方法： showBookList(Integer typeId)  接收参数
     * 3、转发到 booklist.html页面
     *   注意：这个页面需要获取 typeId , 分类id
     */
    @GetMapping("showBookList")
    public String showBookList(Integer typeId, Model model){
        // 保存图书类别id; model.addAttribute 相当于 request.setAttribute
        model.addAttribute("typeId",typeId);
        // 返回的页面名称，页面前缀：/templates/; 页面后缀：.html; 已经在yml中配置
        return "booklist";
    }

    /**
     * 图书详情，用于跳转
     */
    @GetMapping("/showBookDetail")
    public String bookDetail(Integer bookId,Model model) {
        model.addAttribute("bookId",bookId);
        return "bookdetail";
    }

    /**
     * 从cart.html购物车页面，跳转到calc.html结算页面
     * 请求参数： 购物车页面选中的商品ids
     * 业务操作： 存储ids
     * 返回页面： calc.html
     */
    @GetMapping("/calc")
    public ModelAndView calc(Long[] ids) {
        ModelAndView mv = new ModelAndView();
        // Arrays.toString(ids) 解决页面通过thymeleaf获取数据获取的是ids地址问题
        mv.addObject("ids", Arrays.toString(ids)); // 保存数据。
        mv.setViewName("calc"); // 对象视图页面名称
        return mv;
    }

    @GetMapping("/toSearch")
    public String toSearch(String keyword,Model model) {
        model.addAttribute("keyword",keyword);
        // 对应的页面： search.html
        return "search";
    }
}








